s='37409234828432'
print(sorted(s))

#join，通过某个字符，把list里面的每个元素连接起来拼成一个新的字符串
s1=''.join(sorted(s))
print(s1)

l=[1,2,3,4,5]
s2=[str(i) for i in l]
print(s2)

#函数即变量
x=lambda a,b:a+b
print(x(2,3))


d={"wsc":100,"wxy":101,"tsh":103}
for k, v in d.items():
    print(k, v)

for k in d:
    print(k, d.get(k))

print(sorted(d.items(),key=lambda a:a[-1],reverse=True))
#key传函数名，sorted会对每一个元素进行排序的时候，会自动调用这个函数
#根据这个函数的内容进行排序
# 如果排序是多维数组，指定的是多维数组里面的哪个元素
#这里传入lambda表达式形参x的实参为列表d.items()的返回值中的每一个元素


#使用lambda表达式
# lambda表达式在sort函数中的使用

# 假如a是一个由元组构成的列表，对该列表进行排序时，我们需要用到参数key，也就是关键词，如下面代码所示，lambda是一个匿名函数，是固定写法；
# x表示匿名函数的输入，即列表中的一个元素，在这里，表示一个元组，x只是临时起的一个名字，你可以使用任意的名字；x[0]表示匿名函数的输出，即元组里的第一个元素，即key = x[0]；所以这句命令的意思就是按照列表中第一个元素进行排序
a = [(1, 2), (4, 1), (9, 10), (13, -3)]
a.sort(key=lambda x: x[1])

print(a)
# Output: [(13, -3), (4, 1), (1, 2), (9, 10)]


#内置函数
l7=[1,22,3,44,55,655,778,4,45]
print(sum(l7)) #求和
print(sum(l7)/len(l7)) #求平均值
print(max(l7)) #最大值
print(min(l7)) #最小值

print(chr(97))  #通过asiic码反查字符集
print(ord('a'))  #查看asiic码

print(dir(l)) #查看某个变量的方法

#locals()返回当前函数局部变量，并放在字典里面
def my():
    name="wxy"
    age=2
    print(locals())
my()

#reversed()反转对象
print(list(reversed(l7)))

#all()传一个list,里面值全为真则真,一个为假则为假
print(all([1,2,3,0]))
#any()传一个list,里面值一个为真则为真，全假为假
print(any([1,2,3,0]))

#zip()把多个一维数组变成一个二维数组
score=[1,2,334543]
name = ["xiaohen","xiaolan","xiaohei"]
print(list(zip(name,score)))

#exec()#解析python代码并运行
code = "print('hahhahahh')"
exec(code)

#eval()执行简单的代码,比如定义变量、运算
eval(code)


#map()  循环调用函数
# 语法：map(function, iterable, ...)
def int_to_str(s):
    print(s)
    return str(s)

l8=[1,2,3,4,5,6,7,7,8,8,6,4,4]

result= list(map(int_to_str,l8))
print(result)

#filter()  循环调用函数,并过滤数据,返回true就保留，返回false就过滤掉
def zhaoduixiang(item):
    age = item.get("age")
    if age<25:
        return True

person = [
    {"name":"xiaoming2","age":23},
    {"name":"xiaoming3","age":24},
    {"name":"xiaoming4","age":25},
    {"name":"xiaoming5","age":26},
    {"name":"xiaoming6","age":27},
    {"name":"xiaoming7","age":28},
]

# result=list(filter(zhaoduixiang,person))
# print(result)
#
# print(string.ascii_lowercase) #所有小写字母
# print(string.ascii_uppercase) #所有大写字母
# print(string.digits) #所有数字
# print(string.punctuation) #所有的特殊符号
# print(string.ascii_letters) #大写字母+小写字母